package com.mindainfo.groundwave.common.api.member.service;

import com.mindainfo.groundwave.common.api.member.param.*;
import com.mindainfo.groundwave.common.api.member.vo.DeptGetDeptInfoVo;
import com.mindainfo.groundwave.common.api.member.vo.DeptGetMyDeptsVo;
import com.mindainfo.groundwave.common.api.member.vo.DeptQueryListVo;
import com.mindainfo.groundwave.common.bean.CommonResult;
import com.mindainfo.groundwave.common.bean.TableData;

import java.util.List;

/**
 * Created by MD-01 on 2017/5/16.
 */
public interface IDeptService {

    /**
     * 页面分页获取部门列表
     */
    CommonResult<TableData<DeptQueryListVo>> queryList(DeptQueryListParam param);

    /**
     * 页面添加部门
     */
    CommonResult<Void> save(DeptSaveParam param);

    /**
     * 删除部门
     */
    CommonResult<Void> toDel(DeptTodelParam param);

    /**
     * 获取当前用户所在部门及其下属部门
     */
    CommonResult<List<DeptGetMyDeptsVo>> getMyDepts();

    /**
     * 获取当前用户部门树id的list
     */
    CommonResult<List<Integer>> getMyDeptIdList();

    /**
     * 设置部门属性
     */
    CommonResult<Void> setDeptInfo(DeptSetDeptInfoParam param);

    /**
     * 获取部门属性
     */
    CommonResult<DeptGetDeptInfoVo> getDeptInfo(DeptGetDeptInfoParam param);

}
